<template>
  <div id="index">
    <dv-full-screen-container class="bg">
      <dv-loading v-if="loading">Loading...</dv-loading>
      <div v-else class="host-body">
        <!-- 第一行 -->
        <div class="d-flex jc-center">
          <div class="d-flex jc-center" style="width: 13.3%">
            <dv-decoration-12 style="width: 100%; height: 0.0625rem" />
            <LangSelect style="margin-left: -100%"></LangSelect>
          </div>
          <dv-decoration-10 style="width: 20%; height: 0.0625rem" />
          <div class="d-flex jc-center">
            <dv-decoration-8
              :color="['#568aea', '#000000']"
              style="width: 2.5rem; height: 0.625rem"
            />
            <div class="title">
              <span class="title-text">{{ $t("index.title") }}</span>
              <dv-decoration-6
                class="title-bototm"
                :reverse="true"
                :color="['#50e3c2', '#67a1e5']"
                style="width: 3.125rem; height: 0.1rem"
              />
            </div>
            <dv-decoration-8
              :reverse="true"
              :color="['#568aea', '#000000']"
              style="width: 2.5rem; height: 0.625rem"
            />
          </div>
          <dv-decoration-10
            style="width: 33.3%; height: 0.0625rem; transform: rotateY(180deg)"
          />
        </div>
        <!-- 第二行 -->
        <div class="d-flex jc-between px-2">
          <div class="d-flex" style="width: 40%">
            <div
              class="react-right ml-4"
              style="
                width: 6.25rem;
                text-align: left;
                background-color: #0f1325;
              "
            >
              <span class="react-before"></span>
              <span class="text">{{ $t("index.dataanalyse") }}</span>
            </div>
            <div
              class="react-right ml-3"
              style="background-color: #0f1325"
              @click="dialogMapVisible = true"
            >
              <span class="text colorBlue fw-b">ship-map-locus</span>
            </div>
          </div>

          <div class="d-flex" style="width: 40%">
            <div
              class="react-left bg-color-blue mr-3"
              @click="dialogTableVisible = true"
            >
              <span class="text fw-b">ship-alarms-attendance</span>
            </div>
            <div
              class="react-left mr-4"
              style="
                width: 6.25rem;
                background-color: #0f1325;
                text-align: right;
              "
            >
              <span class="react-after"></span>
              <span class="text"
                >{{ dateYear }} {{ dateWeek }} {{ dateDay }}</span
              >
            </div>
          </div>
        </div>

        <div class="body-box">
          <!-- 第三行数据 -->
          <div class="content-box">
            <div>
              <dv-border-box-12>
                <centerLeft1 />
              </dv-border-box-12>
            </div>
            <div>
              <dv-border-box-12>
                <centerLeft2 />
              </dv-border-box-12>
            </div>
            <!-- 中间 -->
            <div>
              <center />
            </div>
            <!-- 中间 -->
            <div>
              <centerRight2 />
            </div>
            <div>
              <dv-border-box-13>
                <centerRight1 />
              </dv-border-box-13>
            </div>
          </div>

          <!-- 第四行数据 -->
          <div class="bototm-box">
            <dv-border-box-13>
              <bottomLeft />
            </dv-border-box-13>
            <dv-border-box-12>
              <bottomRight />
            </dv-border-box-12>
          </div>
        </div>
      </div>
    </dv-full-screen-container>

    <!-- 船舶地图点位弹窗 -->
    <el-dialog
      title="Ship Map Locus"
      :visible.sync="dialogMapVisible"
      :fullscreen="false"
      width="90%"
      :before-close="handleMapDialogClose"
    >
      <Map />
      <!-- <span slot="footer" class="dialog-footer">
        <el-button
          type="warning"
          icon="el-icon-close"
          @click="handleMapDialogClose()"
          >关 闭</el-button
        >
      </span> -->
    </el-dialog>
    <!-- 报警考勤弹窗 -->
    <el-dialog
      title="Alarms or Attendance"
      :visible.sync="dialogTableVisible"
      :fullscreen="false"
      width="80%"
      :before-close="handleDialogClose"
    >
      <Alarms />
      <span slot="footer" class="dialog-footer">
        <el-button
          type="warning"
          icon="el-icon-close"
          @click="handleDialogClose()"
          >关 闭</el-button
        >
      </span>
    </el-dialog>
  </div>
</template>

<script>
import { formatTime } from "../utils/index.js";
import centerLeft1 from "./centerLeft1";
import centerLeft2 from "./centerLeft2";
import centerRight1 from "./centerRight1";
import centerRight2 from "./centerRight2";
import center from "./center";
import bottomLeft from "./bottomLeft";
import bottomRight from "./bottomRight";
// 地图点位弹窗子组件
import Map from "./map/index";
// 报警考勤弹窗子组件
import Alarms from "./alarms/index";
//多语言切换组件
import LangSelect from "@/locale/LangSelect.vue";

export default {
  data() {
    return {
      loading: true,
      dateDay: null,
      dateYear: null,
      dateWeek: null,
      weekday: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],
      dialogTableVisible: false,
      dialogMapVisible: false,
    };
  },
  components: {
    centerLeft1,
    centerLeft2,
    centerRight1,
    centerRight2,
    center,
    bottomLeft,
    bottomRight,
    Map,
    Alarms,
    LangSelect,
  },
  mounted() {
    this.timeFn();
    this.cancelLoading();
  },
  methods: {
    timeFn() {
      setInterval(() => {
        this.dateDay = formatTime(new Date(), "HH: mm: ss");
        this.dateYear = formatTime(new Date(), "yyyy-MM-dd");
        this.dateWeek = this.weekday[new Date().getDay()];
      }, 1000);
    },
    cancelLoading() {
      setTimeout(() => {
        this.loading = false;
      }, 500);
    },
    //处理报警考勤Dialog关闭
    handleDialogClose(done) {
      this.$confirm("确认关闭？", "提示", {
        confirmButtonText: "确 定",
        cancelButtonText: "取 消",
        type: "warning",
      })
        .then(() => {
          this.dialogTableVisible = false;
          done();
        })
        .catch(() => {});
    },
    //处理地图Dialog关闭
    handleMapDialogClose(done) {
      this.$confirm("确认关闭？", "提示", {
        confirmButtonText: "确 定",
        cancelButtonText: "取 消",
        type: "warning",
      })
        .then(() => {
          this.dialogMapVisible = false;
          done();
        })
        .catch(() => {});
    },
  },
};
</script>

<style lang="scss">
@import "../assets/scss/index.scss";
</style>